﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Manager.App_Code;
using System.Linq;
using Manager.Common;

namespace Manager.FormAdd_Edit
{
    public partial class frm_AddNewUser : DevExpress.XtraEditors.XtraForm
    {
        NewPearl_HotelDataContext db = new NewPearl_HotelDataContext();

        public frm_AddNewUser()
        {
            InitializeComponent();            
        }
        
        private void frm_AddNewUser_Load(object sender, EventArgs e)
        {            
            cmbNhomNguoiDung.DataSource = db.NhomNguoiDungs.ToList();
            cmbNhomNguoiDung.DisplayMember = "TenNhom";
            cmbNhomNguoiDung.ValueMember = "MaNhom";            
        }

        private void butThem_Click(object sender, EventArgs e)
        {
            try
            {
                #region validates
                if (string.IsNullOrEmpty(txtHoTen.Text))
                {
                    MessageBox.Show("Vui lòng nhập họ tên.");
                    return;
                }
                else if (string.IsNullOrEmpty(txtUsername.Text))
                {
                    MessageBox.Show("Vui lòng nhập tên đăng nhập.");
                    return;
                }
                else if (string.IsNullOrEmpty(txtPassword.Text))
                {
                    MessageBox.Show("Vui lòng nhập mật khẩu.");
                    return;
                }
                else if (string.IsNullOrEmpty(txtRePassword.Text))
                {
                    MessageBox.Show("Vui lòng điền nhập lại mật khẩu.");
                    return;
                }
                else if (txtPassword.Text.Length < 6)
                {
                    MessageBox.Show("Mật khẩu phải tối thiểu 6 ký tự.");
                    return;
                }
                else if (txtPassword.Text != txtRePassword.Text)
                {
                    MessageBox.Show("Nhập lại mật khẩu không đúng.");
                    return;
                }
                var nguoiDung = db.NguoiDungs.SingleOrDefault(t => t.Username == txtUsername.Text);
                if (nguoiDung != null)
                {
                    MessageBox.Show("Tài khoản này đã tồn tại.");
                    return;
                }
                #endregion

                var user = new NguoiDung();
                user.Username = txtUsername.Text;
                user.Password = BitConverter.ToString(CommonFunction.encryptDataMD5(txtPassword.Text));
                user.MaNhom = cmbNhomNguoiDung.SelectedValue.ToString();
                user.HoTen = txtHoTen.Text;
                db.NguoiDungs.InsertOnSubmit(user);
                db.SubmitChanges();
                this.Close();
            }
            catch (Exception ex)
            {
                Log.WriteLog("butThem_Click: " + ex.Message + "\n" + ex.StackTrace);
                MessageBox.Show("Không thêm được tài khoản này.\nVui lòng kiểm tra lại.");
            }
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}